evaluate

Author

김보람

Published

January 30, 2024

import numpy as np
import pandas as pd
import sklearn.metrics
def evaluation(y, yhat):
    y = np.array(y).reshape(-1)
    yhat_prob = np.array(yhat).reshape(-1)
    yhat_01 = np.array(yhat).reshape(-1)>0.5
    acc = sklearn.metrics.accuracy_score(y,yhat_01)
    pre = sklearn.metrics.precision_score(y,yhat_01)
    rec = sklearn.metrics.recall_score(y,yhat_01)
    f1 = sklearn.metrics.f1_score(y,yhat_01)
    auc = sklearn.metrics.roc_auc_score(y,yhat_prob)
    return {'acc':acc,'pre':pre,'rec':rec,'f1':f1,'auc':auc}
y = [0,0,0,1]
yhat = [0,0,0,0.1] 
evaluation(y,yhat)
/home/coco/anaconda3/envs/pyod/lib/python3.11/site-packages/sklearn/metrics/_classification.py:1497: UndefinedMetricWarning: Precision is ill-defined and being set to 0.0 due to no predicted samples. Use `zero_division` parameter to control this behavior.
  _warn_prf(average, modifier, f"{metric.capitalize()} is", len(result))
{'acc': 0.75, 'pre': 0.0, 'rec': 0.0, 'f1': 0.0, 'auc': 1.0}